<?php
class OrdemservicosStatusController extends AppController {

	var $name = 'OrdemservicosStatus';

	function index($os_id = null) {
		$this->OrdemservicosStatus->recursive = 0;
		$this->paginate = array('conditions' => array('OrdemservicosStatus.ordemservico_id' => $os_id));
		$statuses = $this->paginate();
		$this->set('statuses', $statuses);
	}

	function relatorioEntregas($msg = null) {
		
		if ( $this->Session->read('Auth.Usuario.perfilacesso') == 'Administrador' ) {
			$periodo = $tipo = $os_id = '';
			if ( !empty($this->data['OrdemservicosStatus']['ordemservico_id']) )  
				$os_id = '"Ordemservico"."id" = '.$this->data['OrdemservicosStatus']['ordemservico_id'].'';
			if ( !empty($this->data['OrdemservicosStatus']['datainicial']) && !empty($this->data['OrdemservicosStatus']['datafinal']) ) {
				$data1 = explode('/', $this->data['OrdemservicosStatus']['datainicial']);
				$datainicial = $data1[2].'-'.$data1[1].'-'.$data1[0].' 00:00:00';
				$data2 = explode('/', $this->data['OrdemservicosStatus']['datafinal']);
				$datafinal = $data2[2].'-'.$data2[1].'-'.$data2[0].' 23:59:59';
				$periodo = "to_date(\"Ordemservico\".\"entregadata\", 'DD/MM/YYYY') between '".$datainicial."' and '".$datafinal."'";
			}
			if ( !empty($this->data['OrdemservicosStatus']['garantia']) && empty($this->data['OrdemservicosStatus']['orcamento']) ) 
				$tipo = '"Ordemservico"."tipo" = \'G\'';
			if ( !empty($this->data['OrdemservicosStatus']['orcamento']) && empty($this->data['OrdemservicosStatus']['garantia']) )  
				$tipo = '"Ordemservico"."tipo" = \'O\'';
			
			$this->OrdemservicosStatus->Ordemservico->unbindModel(array('hasMany' => array('Laudotecnico', 'Entrega'), 'belongsTo' => array('Produto', 'Pessoa'), 'hasAndBelongsToMany' => array('Peca', 'Servico')), false);
	    	$this->OrdemservicosStatus->Status->unbindModel(array('hasAndBelongsToMany' => array('Ordemservico')), false);
			$this->OrdemservicosStatus->recursive = 2;
			$this->paginate = array('conditions' => array('OrdemservicosStatus.status_id' => 13, $tipo, $periodo, $os_id),
								  	//'order' => array('Ordemservico.entregadata' => 'ASC')
								  );
			$OSs = $this->paginate();
			$entregas = array();
			foreach ($OSs as $os) {
				($os['Ordemservico']['tipo'] == 'G') ? $os['Ordemservico']['tipo'] = 'Garantia' : $os['Ordemservico']['tipo'] = 'Orçamento';
				$os['Ordemservico']['cliente'] = $this->OrdemservicosStatus->Ordemservico->Pessoa->field('nome', array('Pessoa.id' => $os['Ordemservico']['pessoa_id']));
				$comeco = $fim = '';
				foreach ($os['Ordemservico']['Status'] as $status) {
					if ($status['id'] == 11)
						$comeco = $status['OrdemservicosStatus']['created'];
					if ($status['id'] == 13)
						$fim = $status['OrdemservicosStatus']['created'];
				}
				if ( !empty($comeco) && !empty($fim) ) {
					list($dia, $mes, $ano) = explode('/', date('d/m/Y', strtotime($comeco)));
					list($hora, $minuto, $segundo) = explode(':', date('H:i:s', strtotime($comeco)));
					$dataSaida = mktime($hora, $minuto, $segundo, $mes, $dia, $ano);
					
					list($dia1, $mes1, $ano1) = explode('/', date('d/m/Y', strtotime($fim)));
					list($hora1, $minuto1, $segundo1) = explode(':', date('H:i:s', strtotime($fim)));
					$dataEntrega = mktime($hora1, $minuto1, $segundo1, $mes1, $dia1, $ano1);
	
					$segundos = $dataEntrega - $dataSaida;
					$os['Ordemservico']['tempoentrega'] = gmdate("H:i:s", $segundos);
				} else 
					$os['Ordemservico']['tempoentrega'] = gmdate("H:i:s", 0);
				
				$os['OrdemservicosStatus']['ordemservico_id'] = $this->OrdemservicosStatus->inserirZerosId($os['OrdemservicosStatus']['ordemservico_id']);	
				$entregas[] = $os;
				
			}
			$this->set(compact('entregas', 'msg'));
			
		} else {
			$this->Session->write('msg', 'Você não tem acesso a essa funcionalidade.');
			$this->redirect('/menu/');
		}
		//if($x) {
			//$this->layout = 'pdf';
			//$this->render('relatorioEntregasPdf');
		//}
	}
	
}
?>